package com.microservice.salmon.weixin.service.impl;

import com.microservice.salmon.weixin.domain.NewsMessage;
import com.microservice.salmon.weixin.domain.TextMessage;
import com.microservice.salmon.weixin.domain.menu.Button;
import com.microservice.salmon.weixin.domain.menu.ClickButton;
import com.microservice.salmon.weixin.domain.menu.Menu;
import com.microservice.salmon.weixin.domain.menu.ViewButton;
import com.microservice.salmon.weixin.service.WeiXinService;
import com.microservice.salmon.weixin.utils.WeiXinUtils;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * <p>
 * 微信消息处理实现类
 * </p>
 *
 * @author 王洪庆 2018-12-12 11:11
 */
@Service
public class WeiXinServiceImpl implements WeiXinService {


    public TextMessage handleTextMessage(String toUserName, String fromUserName, String content){
        TextMessage text = new TextMessage();
        text.setFromUserName(toUserName);
        text.setToUserName(fromUserName);
        text.setMsgType(WeiXinUtils.MESSAGE_TEXT);
        text.setCreateTime(new Date().getTime());
        text.setContent(content);
        return text;
    }

    /**
     * 出来了图文消息
     *
     * @param toUserName
     * @param fromUserName
     * @param content
     */
    @Override
    public NewsMessage handleNewsMessage(String toUserName, String fromUserName, String content) {
        return null;
    }


    @Override
    public Menu createButton() {
        return initMenu();
    }

    public String menuText(){
        StringBuffer sb = new StringBuffer();
        sb.append("欢迎您的关注，请按照菜单提示进行操作：\n\n");
        sb.append("1、课程介绍\n");
        sb.append("2、慕课网介绍\n");
        sb.append("3、词组翻译\n\n");
        sb.append("回复？调出此菜单。");
        return sb.toString();
    }

    public String firstMenu(){
        StringBuffer sb = new StringBuffer();
        sb.append("本套课程介绍微信公众号开发，主要涉及公众号介绍、编辑模式介绍、开发模式介绍等");
        return sb.toString();
    }

    public String secondMenu(){
        StringBuffer sb = new StringBuffer();
        sb.append("慕课网是垂直的互联网IT技能免费学习网站。以独家视频教程、在线编程工具、学习计划、问答社区为核心特色。在这里，你可以找到最好的互联网技术牛人，也可以通过免费的在线公开视频课程学习国内领先的互联网IT技术。");
        sb.append("慕课网课程涵盖前端开发、PHP、Html5、Android、iOS、Swift等IT前沿技术语言，包括基础课程、实用案例、高级分享三大类型，适合不同阶段的学习人群。以纯干货、短视频的形式为平台特点，为在校学生、职场白领提供了一个迅速提升技能、共同分享进步的学习平台。");
        return sb.toString();
    }

    public String threeMenu(){
        StringBuffer sb = new StringBuffer();
        sb.append("词组翻译使用指南\n\n");
        sb.append("使用示例：\n");
        sb.append("翻译足球\n");
        sb.append("翻译中国足球\n");
        sb.append("翻译football\n\n");
        sb.append("回复？显示主菜单。");
        return sb.toString();
    }

    /**
     * 组装菜单
     * @return
     */
    public Menu initMenu(){
        Menu menu = new Menu();
        ClickButton button11 = new ClickButton();
        button11.setName("click菜单");
        button11.setType("click");
        button11.setKey("11");

        ViewButton button21 = new ViewButton();
        button21.setName("view菜单");
        button21.setType("view");
        button21.setUrl("http://www.imooc.com");

        ClickButton button31 = new ClickButton();
        button31.setName("扫码事件");
        button31.setType("scancode_push");
        button31.setKey("31");

        ClickButton button32 = new ClickButton();
        button32.setName("地理位置");
        button32.setType("location_select");
        button32.setKey("32");

        Button button = new Button();
        button.setName("菜单");
        button.setSub_button(new Button[]{button31,button32});

        menu.setButton(new Button[]{button11,button21,button});
        return menu;
    }
}
